//#include <iostream>
//#include <vector>
//using namespace std;
//
//const int N = 1e5 + 10;
//
//int v[N] = { 0 };
//int w[N] = { 0 };
//int m[N] = { 0 };
//int f[N] = { 0 };
//
//
//int n, W;
//
//int main()
//{
//	//cin >> n >> W;
//	scanf("%d %d", &n, &W);
//	//vector<int> v(n + 10, 0);
//	//vector<int> w(n + 10, 0);
//	//vector<int> m(n + 10, 0);
//	//vector<int> f(W + 10);
//
//	for (int i = 1; i <= n; i++)
//	{
//		scanf("%d %d %d", &v[i], &w[i], &m[i]);
//	}
//
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = W; j >= w[i]; j--)
//		{
//			for (int k = 1; k <= m[i] && j >= k * w[i]; k++)
//			{
//				f[j] = max(f[j], f[j - k * w[i]] + k * v[i]);
//			}
//		}
//	}
//
//	printf("%d", f[W]);
//
//	return 0;
//}



//#include <iostream>
//using namespace std;
//
//const int N = 1e5 + 10;
//
//int v[N] = { 0 };
//int w[N] = { 0 };
//int f[N] = { 0 };
//int pos = 0;
//int n, m;
//
//int main()
//{
//	cin >> n >> m;
//	for (int i = 1; i <= n; i++)
//	{
//		int a, b, c;
//		cin >> a >> b >> c;
//		int t = 1;
//		while (c >= t)
//		{
//			++pos;
//			w[pos] = t * b;
//			v[pos] = t * a;
//			c -= t;
//			t *= 2;
//		}
//		if (c > 0)
//		{
//			++pos;
//			w[pos] = c * b;
//			v[pos] = c * a;
//		}
//	}
//
//	for (int i = 1; i <= pos; i++)
//	{
//		for (int j = m; j >= w[i]; j--)
//		{
//			f[j] = max(f[j], f[j - w[i]] + v[i]);
//		}
//	}
//
//	cout << f[m] << endl;
//
//	return 0;
//}


//class Solution {
//public:
//
//    ListNode* sortList(ListNode* head)
//    {
//        vector<int> a;
//
//        ListNode* cur = head;
//        while (cur != nullptr)
//        {
//            a.push_back(cur->val);
//            cur = cur->next;
//        }
//
//        sort(a.begin(), a.end());
//
//        cur = head;
//        int pos = 0;
//        while (cur != nullptr)
//        {
//            cur->val = a[pos++];
//            cur = cur->next;
//        }
//
//        return head;
//    }
//};


//class Solution {
//public:
//    string minWindow(string s, string t)
//    {
//        int st[500] = { 0 };
//        int kind = 0;
//        int retl = 0;
//        int retr = 0;
//        int retlen = -1;
//        int n = 0;
//        for (auto& ch : t)
//        {
//            st[ch]++;
//            if (st[ch] == 1)
//                n++;
//        }
//
//        int tmp[500] = { 0 };
//
//        string ret = "";
//        int left = 0;
//        int right = 0;
//        while (right < s.size())
//        {
//            if (++tmp[s[right]] == st[s[right]])
//            {
//                kind++;
//            }
//            while (kind == n)
//            {
//                if (retlen == -1 || retlen > (right - left + 1))
//                {
//                    retlen = (right - left + 1);
//                    retr = right;
//                    retl = left;
//                }
//                if (tmp[s[left]]-- == st[s[left]])
//                {
//                    kind--;
//                }
//                left++;
//            }
//
//            right++;
//        }
//        if (retlen == -1)
//            return "";
//        else
//            return s.substr(retl, retlen);
//
//    }
//};


//class Solution {
//public:
//    int longestCommonSubsequence(string text1, string text2)
//    {
//        vector<vector<int>> f(1010, vector(1010, 0));
//
//
//        int n = text1.size();
//        int m = text2.size();
//
//
//        for (int i = 1; i <= n; i++)
//        {
//            for (int j = 1; j <= m; j++)
//            {
//                if (text1[i - 1] == text2[j - 1])
//                    f[i][j] = f[i - 1][j - 1] + 1;
//                else
//                    f[i][j] = max(f[i - 1][j], f[i][j - 1]);
//            }
//        }
//
//        return f[n][m];
//
//    }
//};


//class Solution {
//public:
//    int st1[20] = { 0 };
//    int st2[20] = { 0 };
//    int st3[20] = { 0 };
//    char a[10][10];
//    void dfs(int x, int n, vector<vector<string>>& ret)
//    {
//        if (x > n)
//        {
//            vector<string> path;
//            string s;
//            for (int i = 1; i <= n; i++)
//            {
//                for (int j = 1; j <= n; j++)
//                {
//                    if (a[i][j] != 'Q')
//                        s += '.';
//                    else
//                        s += 'Q';
//                }
//                path.push_back(s);
//                s.clear();
//            }
//            ret.push_back(path);
//            return;
//        }
//
//        for (int i = 1; i <= n; i++)
//        {
//            if (st1[i] == 0 && st2[x - i + 10] == 0 && st3[x + i] == 0)
//            {
//                st1[i] = 1;
//                st2[x - i + 10] = 1;
//                st3[x + i] = 1;
//                a[x][i] = 'Q';
//                dfs(x + 1, n, ret);
//                a[x][i] = '.';
//                st1[i] = 0;
//                st2[x - i + 10] = 0;
//                st3[x + i] = 0;
//            }
//        }
//
//
//    }
//    vector<vector<string>> solveNQueens(int n)
//    {
//        vector<vector<string>> ret;
//        vector<string> path;
//        dfs(1, n, ret);
//
//        return ret;
//    }
//};


#include <iostream>
#include <string>
using namespace std;

int t;
string str;

int main()
{
	cin >> t;
	while (t--)
	{
		cin >> str;
		char a = str[0];
		int len = str.size();
		for (int i = 1; i < len; i++)
		{
			if (str[i] > a)
			{
				a += 1;
				break;
			}
		}
		for (int i = 1; i <= len; i++)
		{
			cout << a;
		}
		cout << endl;
	}
	return 0;
}